package com.gqj.meter.domain;

import com.gqj.common.annotation.Excel;
import com.gqj.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.poi.ss.usermodel.IndexedColors;

import javax.validation.constraints.NotBlank;

/**
 * 库房信息对象 MD_WH_INFO
 *
 * @author lxq
 * @date lxq-01-09
 */
public class MdWhInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 库房标识，本实体记录的唯一标识
     */
    @ApiModelProperty("主键")
    private Long whId;

    /**
     * 操作标识
     */
    @ApiModelProperty("操作标识")
    private Long operId;

    /**
     * 库房编号，库房的用户自己编的外部编号
     */
    @ApiModelProperty("库房编号")
    @Excel(name = "库房编号", headerBackgroundColor = IndexedColors.RED1,prompt = "请输入库房编号")
    private String whNo;

    /**
     * 库房名称
     */
    @ApiModelProperty("库房名称")
    @Excel(name = "库房名称", headerBackgroundColor = IndexedColors.RED1,prompt = "请输入库房名称")
    private String name;

    /**
     * 所属机构名称
     */
    @ApiModelProperty("所属机构名称")
    @Excel(name = "所属机构名称")
    private String orgNo;

    /**
     * 机构级别，
     * 01：国家级、02：网省级、03：地市级、04：区县级、05：供电所
     */
    @ApiModelProperty("机构级别")
    @Excel(name = "机构级别",dictType = "wh_lab_level")
    private String labLevel;

    /**
     * 库房分类，
     * 01：混合库房、02：单一库房
     */
    @ApiModelProperty("库房分类")
    @Excel(name = "库房分类", dictType = "wh_type_code")
    private String typeCode;

    /**
     * 库房级别，
     * 01：省级、02：一级、03：二级、04：三级
     */
    @ApiModelProperty("库房级别")
    @Excel(name = "库房级别", dictType = "wh_level_code")
    private String levelCode;

    /**
     * 运转方式，01：机器、02：人工
     */
    @ApiModelProperty("运转方式")
    @Excel(name = "运转方式", dictType = "wh_operate_type_code" )
    private String operateTypeCode;

    /**
     * 自动化设备制造单位
     */
    @ApiModelProperty("自动化设备制造单位")
    @Excel(name = "自动化设备制造单位")
    private String factoryCode;

    /**
     * 库房面积
     */
    @ApiModelProperty("库房面积")
    @Excel(name = "库房面积")
    private Integer tSize;

    /**
     * 建筑面积
     */
    @ApiModelProperty("建筑面积")
    @Excel(name = "建筑面积")
    private Integer coveredArea;

    /**
     * 库容面积
     */
    @ApiModelProperty("库房面积")
    @Excel(name = "库容面积")
    private Integer capSize;

    /**
     * 管理单位
     */
    @ApiModelProperty("管理单位")
    @Excel(name = "管理单位")
    private String deptNo;

    /**
     * 库房状态，01：运行、02：锁定、03：废弃
     */
    @ApiModelProperty("库房状态")
    @Excel(name = "库房状态", dictType = "wh_status_code")
    private String statusCode;

    /**
     * 责任人，管理库房的责任人的人员姓名
     */
    @ApiModelProperty("责任人")
    @Excel(name = "责任人")
    private String personRespNo;

    /**
     * 库房主键集合
     */
    @ApiModelProperty("库房主键集合")
    private Long[] whIds;

    public Long[] getWhIds() {
        return whIds;
    }

    public void setWhIds(Long[] whIds) {
        this.whIds = whIds;
    }

    public void setWhId(Long whId) {
        this.whId = whId;
    }

    public Long getWhId() {
        return whId;
    }

    public void setOperId(Long operId) {
        this.operId = operId;
    }

    public Long getOperId() {
        return operId;
    }

    public void setWhNo(String whNo) {
        this.whNo = whNo;
    }

    @NotBlank(message = "库房编号不能为空")
    public String getWhNo() {
        return whNo;
    }

    public void setName(String name) {
        this.name = name;
    }

    @NotBlank(message = "库房名称不能为空")
    public String getName() {
        return name;
    }

    public void setOrgNo(String orgNo) {
        this.orgNo = orgNo;
    }

    public String getOrgNo() {
        return orgNo;
    }

    public void setLabLevel(String labLevel) {
        this.labLevel = labLevel;
    }

    public String getLabLevel() {
        return labLevel;
    }

    public void setTypeCode(String typeCode) {
        this.typeCode = typeCode;
    }

    public String getTypeCode() {
        return typeCode;
    }

    public void setLevelCode(String levelCode) {
        this.levelCode = levelCode;
    }

    public String getLevelCode() {
        return levelCode;
    }

    public void setOperateTypeCode(String operateTypeCode) {
        this.operateTypeCode = operateTypeCode;
    }

    public String getOperateTypeCode() {
        return operateTypeCode;
    }

    public void setFactoryCode(String factoryCode) {
        this.factoryCode = factoryCode;
    }

    public String getFactoryCode() {
        return factoryCode;
    }

    public Integer gettSize() {
        return tSize;
    }

    public void settSize(Integer tSize) {
        this.tSize = tSize;
    }

    public void setCoveredArea(Integer coveredArea) {
        this.coveredArea = coveredArea;
    }

    public Integer getCoveredArea() {
        return coveredArea;
    }

    public void setCapSize(Integer capSize) {
        this.capSize = capSize;
    }

    public Integer getCapSize() {
        return capSize;
    }

    public void setDeptNo(String deptNo) {
        this.deptNo = deptNo;
    }

    public String getDeptNo() {
        return deptNo;
    }

    public void setStatusCode(String statusCode) {
        this.statusCode = statusCode;
    }

    public String getStatusCode() {
        return statusCode;
    }

    public void setPersonRespNo(String personRespNo) {
        this.personRespNo = personRespNo;
    }

    public String getPersonRespNo() {
        return personRespNo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("whId", getWhId())
                .append("operId", getOperId())
                .append("whNo", getWhNo())
                .append("name", getName())
                .append("orgNo", getOrgNo())
                .append("labLevel", getLabLevel())
                .append("typeCode", getTypeCode())
                .append("levelCode", getLevelCode())
                .append("operateTypeCode", getOperateTypeCode())
                .append("factoryCode", getFactoryCode())
                .append("tSize", gettSize())
                .append("remark", getRemark())
                .append("coveredArea", getCoveredArea())
                .append("capSize", getCapSize())
                .append("deptNo", getDeptNo())
                .append("statusCode", getStatusCode())
                .append("personRespNo", getPersonRespNo())
                .toString();
    }
}
